#include "uart2_driver.h"

void uart2_task() _task_ UART2_TASK
{
    u8 i;
    P5_MODE_IO_PU(GPIO_Pin_3);
    while (1) {
        /* code */
        if (COM2.RX_TimeOut > 0) {
            // 超时计数
            if (--COM2.RX_TimeOut == 0) {
                if (COM2.RX_Cnt > 0) {
                    // 这里处理收到的数据，做具体的逻辑
                    for (i = 0; i < COM2.RX_Cnt; i++) {
                        // if (RX2_Buffer[i] == flag_value) {
                        //     func();
                        // }
                        // printf("%c\n", RX2_Buffer[i]); // 打印接收到的数据，用于调试
                        TX1_write2buff(RX2_Buffer[i]);
                    }
                    if (strcmp((char *)RX2_Buffer, "A") == 0) {
                        printf("on start\n");
                        P53 = 1;
                    }
                    if (strcmp((char *)RX2_Buffer, "B") == 0) {
                        printf("off start\n");
                        P53 = 0;
                    }
                    // 门锁开
                    if (strcmp((char *)RX2_Buffer, "C") == 0) {
                        printf("angle: 180\n");
                        set_angle_value(180);
                    }
                    // 门锁关
                    if (strcmp((char *)RX2_Buffer, "D") == 0) {
                        printf("angle: 0\n");
                        set_angle_value(10);
                    }
                    if (strcmp((char *)RX2_Buffer, "E") == 0) {
                        printf("TV: on\n");
                        oled_spi_switch = 1;
                    }
                    if (strcmp((char *)RX2_Buffer, "F") == 0) {
                        printf("TV: off\n");
                        oled_spi_movie2 = 0;
                        oled_spi_movie1 = 0;
                        oled_spi_switch = 0;
                    }
                    if (strcmp((char *)RX2_Buffer, "G") == 0) {
                        printf("fan: on\n");
                        P53 = 1;
                    }
                    if (strcmp((char *)RX2_Buffer, "H") == 0) {
                        printf("fan: off\n");
                        P53 = 0;
                    }
                    if (strcmp((char *)RX2_Buffer, "I") == 0) {
                        printf("fan: on\n");
                        oled_spi_switch = 0;
                        oled_spi_movie2 = 0;
                        oled_spi_movie1 = 1;
                    }
                    if (strcmp((char *)RX2_Buffer, "J") == 0) {
                        printf("fan: off\n");
                        oled_spi_switch = 0;
                        oled_spi_movie1 = 0;
                        oled_spi_movie2 = 1;
                    }

                    COM2.RX_Cnt = 0;
                }
            }
        }
        os_wait2(K_TMO, 1);
    }
}

void uart1_task() _task_ UART1_TASK
{
    u8 i;
    u8 flag;
    flag = 0;
    while (1) {
        if (COM1.RX_TimeOut > 0) {
            // 超时计数
            if (--COM1.RX_TimeOut == 0) {
                if (COM1.RX_Cnt > 0) {

                    for (i = 0; i < COM1.RX_Cnt; i++) {
                        // RX1_Buffer[i]存的是接收的每个字节
                        // TX2_write2buff(RX1_Buffer[i]);
                        // if (flag == 0) {
                        //     /* code */
                        //     set_angle_value(180.0);
                        //     flag = 1;
                        //     printf("angle: 180");
                        // } else {
                        //     /* code */
                        //     set_angle_value(0.0);
                        //     flag = 0;
                        //     printf("angle: 0");
                        // }
                    }
                }
                COM1.RX_Cnt = 0;
            }
        }

        os_wait2(K_TMO, 2); // 5ms * 2 = 10ms
    }
}